const bcrypt = require('bcryptjs');

/**
 * 密码加密
 * @param {string} password 原始密码
 * @returns {Promise<string>} 加密后的密码
 */
const hashPassword = async (password) => {
  const salt = await bcrypt.genSalt(10);
  return bcrypt.hash(password, salt);
};

/**
 * 密码比较
 * @param {string} password 原始密码
 * @param {string} hash 加密后的密码
 * @returns {Promise<boolean>} 是否匹配
 */
const comparePassword = async (password, hash) => {
  return bcrypt.compare(password, hash);
};

/**
 * 生成随机ID
 * @param {string} prefix ID前缀
 * @returns {string} 生成的ID
 */
const generateId = (prefix = '') => {
  const timestamp = Date.now();
  const random = Math.floor(Math.random() * 1000).toString().padStart(3, '0');
  return `${prefix}${timestamp}${random}`;
};

module.exports = {
  hashPassword,
  comparePassword,
  generateId
}; 